﻿#include <iostream>
#include<vector>

using namespace std;
const int N = 1e6;
int a[N];
int b[N];
int c[N];
int d[N];
vector<int> ans;
bool check;

int main()
{
    string A, B;
    std::cin >> A >> B;
    //怎么判断两数字的大小 先将负号去除
    if (A[0] == '-') A.erase(0, 1);
    if (B[0] == '-') B.erase(0, 1);

    if (A.size() < B.size() || (A.size() == B.size() && A < B))//确保大的-小的
    {
        swap(A, B);
        check = true;//表示为负数
    }
    int lena = A.size();
    int lenb = B.size();
    //将字符转为数组
    for (int i = 0, j = lena - 1; i < lena; ++i, --j) a[i + 1] = A[j] - '0';
    for (int i = 0, j = lenb - 1; i < lenb; ++i, --j) b[i + 1] = B[j] - '0';

    //高精度✖高精度 计算A的平方 和 B的平方
    for (int i = 1; i <= lena; ++i)
    {
        for (int j = 1; j <= lena; ++j)
        {
            c[i + j - 1] += a[i] * a[j];
            if (c[i + j - 1] >= 10)
            {
                c[i + j] += c[i + j - 1] / 10;
                c[i + j - 1] %= 10; //c[i + j] %= 10;
            }
        }
    }
    for (int i = 1; i <= lenb; ++i)
    {
        for (int j = 1; j <= lenb; ++j)
        {
            d[i + j - 1] += b[i] * b[j];
            if (d[i + j - 1] >= 10)
            {
                d[i + j] += d[i + j - 1] / 10;
                d[i + j - 1] %= 10; //c[i + j] %= 10;
            }
        }
    }

    //怎么确定c，d数组中的有效数字的长度 
     // 使用一个变量来跟踪 c 的实际长度
    int c_length = A.size() * 2; // 估计最大长度 平方之后长度大概为原来的两倍
    while (c[c_length] == 0 && c_length >= 1) c_length--; // 确定 c 的实际长度

    int d_length = B.size() * 2; // 估计最大长度
    while (d[d_length] == 0 && d_length >= 1) d_length--; // 确定 d 的实际长度

    //高精度减法
    int t = 0;
    for (int i = 1; i <= c_length; ++i)
    {
        t = t + c[i] - d[i];
        ans.push_back((t + 10) % 10);
       
        if (t >= 0)//if (t > 0)
            t = 0;
        else
            t = -1;
    }
    //去除前置零  不为空且数组最后一个元素为0
    while (!ans.empty() && ans.back() == 0) ans.pop_back();

    if (check)//若为负数 先打印-
        printf("-");
    for (int i = ans.size() - 1; i >= 0; --i)
    {
        cout << ans[i];
    }
    return 0;
}
//1.怎么判断两字符串数值的大小 -- 需要平方 比较绝对值即可
//2.怎么确定c，d数组中的有效数字的长度 
//3.字符串大小的比较，数组大小的比较 vector和string
//4.高精度*高精度的步骤
//5.高精度减法